package model

import (
	com_model "elflog/common/com-model"
	"time"
)

type Log struct {
	com_model.Model
	AccountId  string    `gorm:"column:account_id;type:char(36);index;not null" json:"account_id"`
	LoggerId   string    `gorm:"column:logger_id;type:char(36);index;not null" json:"logger_id"`
	LoggerName string    `gorm:"column:logger_name;type:varchar(50);index;not null" json:"logger_name"`
	AppName    string    `gorm:"column:app_name;type:varchar(64);index;not null" json:"app_name"`
	AppVersion string    `gorm:"column:app_version;type:varchar(64);index;not null" json:"app_version"`
	AppHost    string    `gorm:"column:app_host;type:varchar(64);index;not null" json:"app_host"`
	RemoteIp   string    `gorm:"column:remote_ip;type:varchar(64);index;not null" json:"remote_ip"`
	ModuleName string    `gorm:"column:module_name;type:varchar(64);index;not null" json:"module_name"`
	FuncName   string    `gorm:"column:func_name;type:varchar(64);index;not null" json:"func_name"`
	ClientId   string    `gorm:"column:client_id;type:varchar(64);index;not null" json:"client_id"`
	Time       time.Time `gorm:"column:time;index;not null;type:datetime(6)" json:"time"`
	TraceId    string    `gorm:"column:trace_id;type:char(64);index;not null" json:"trace_id"`
	UserId     string    `gorm:"column:user_id;type:char(64);index;not null" json:"user_id"`
	Message    string    `gorm:"column:message;type:varchar(500);not null" json:"message"`
	Content    string    `gorm:"column:content;type:text;not null" json:"content"`  // 所有内容的json形式
	Level      int       `gorm:"column:level;type:int;not null;index" json:"level"` // level 0-6 	PanicLevel,FatalLevel,ErrorLevel,WarnLevel,InfoLevel,DebugLevel,TraceLevel,
}

func (log Log) TableName() string {
	return "tb_log"
}
